The present invention relates generally to systems and methods for compressing, decompressing, and transmitting video data.
Video data is transmitted in a bitstream, or a continuous sequence of binary bits used to digitally represent compressed video, audio or data. The bitstream is transmitted over a transmission channel. One problem with existing transmission channels is their ability to transport video data. In multimedia streaming applications for example, the video data requires significant bandwidth from a communication channel.
Since transmission of video data with existing communication channels is often excessive, compression is an approach that has been used to make digital video images more transportable. Digital video compression schemes allow digitized video frames to be represented digitally in much more efficient manner. Compression of digital video makes it practical to transmit the compressed signal using digital channels at a fraction of the bandwidth required to transmit the original signal without compression. International standards have been created for video compression schemes. These include MPEG-1, MPEG-2, MPEG-4, H.261, H.262, H.263, H.263+, etc. These standardized compression schemes rely on several algorithm schemes such as motion compensated transform coding (for example, DCT transforms or wavelet/sub-band transforms), quantization of the transform coefficients, and variable length coding (VLC).
Motion estimation is used during encoding of video data to remove the temporally redundant information between video frame sequences. In many compression schemes, motion estimation produces motion vectors that quantify the temporal difference between two successive frames. The motion vectors are transmitted with the compressed bitstream to a target decoder. During decompression of the compressed video by the decoder, motion compensation uses the motion vectors to produce a predicted frame in order to reconstruct the video data. The predicted frame is not a perfect representation of the actual video data. The difference between the actual video data and the motion compensation prediction is referred to as the motion compensation error, or residual error.
In many motion estimation schemes, such as MPEG-x, a frame is partitioned into blocks to reduce the transmission cost in sending the coded motion vectors. A motion vector is then estimated for each block, and transmitted with the encoded data. As the block size increases, the number of motion vectors sent—and the transmission burden—decreases. However, as the block size increases, it becomes harder to find a matched block in a previous frame. As the block size decreases, accuracy for the predicted frame improves. However, the motion vectors require significant bits during compressed transmission; and decreasing the block size thus becomes expensive for transmitting the compressed data.
The pel-recursive motion compensation algorithm is a form of motion compensation that is applied on a pel-by-pel, or pixel-by-pixel, basis (or on a small block of pels). One advantage of this algorithm is that it requires no motion vectors to be transmitted, thus allowing pixel by pixel motion compensation without inducing excessive transmission burden. For this reason, it appeals to low bit rate video coding applications.
Pel-recursive methods produce a residual error. Conventional pel-recursive methods quantize the residual error on a pixel-by-pixel basis. Quantization reduces the number of levels required to represent data. Conventional pel-recursive motion compensation algorithms rely on scalar quantization of the motion compensation error signal. Since error is quantified and encoded pixel by pixel, scalar quantization of the residual error results in excessive bit usage and transmission burden and thus limits the performance of pel-recursive video coding systems.
Based on the foregoing, there is a need for a method and system for encoding, decoding and transmitting video data that maintains pixel based motion estimation and compensation but does not require excessive bandwidth.